/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.facilscrum.form.equipos;

import javax.swing.table.DefaultTableModel;
import org.javscaz.javscaztools.utilidades.Utilidades;
import org.facilscrum.beans.Equipos;
import org.facilscrum.beans.Equiposusuarios;
import org.facilscrum.beans.Usuarios;
import org.facilscrum.controller.EquiposController;
import org.facilscrum.controller.EquiposusuariosController;
import org.facilscrum.controller.UsuariosController;
import org.facilscrum.generales.Mensajeria;
import org.jdesktop.swingx.autocomplete.AutoCompleteDecorator;

/**
 *
 * @author avbravo
 */
public class EquiposUsuariosAgregarForm extends javax.swing.JInternalFrame {

    Equipos equipos = new Equipos();
    EquiposController equiposController = new EquiposController();
    Equiposusuarios equiposusuarios = new Equiposusuarios();
    EquiposusuariosController equiposusuariosController = new EquiposusuariosController();
    Usuarios usuarios = new Usuarios();
    UsuariosController usuariosController = new UsuariosController();
    DefaultTableModel modelo, modeloDisponible;
    Boolean fueMovido = false;

    /**
     * Creates new form SprintForm
     */
    public EquiposUsuariosAgregarForm() {
        initComponents();
        try {

            fueMovido = false;
            modelo = (DefaultTableModel) jTableEquiposusuarios.getModel();
            modeloDisponible = (DefaultTableModel) jTableEquiposusuariosDisponibles.getModel();
            jButtonGuardar.setEnabled(true);
            if (!cargarComboEquipos()) {
                jButtonGuardar.setEnabled(false);
            }

            java.util.Calendar ca = java.util.Calendar.getInstance();
            java.sql.Date mydate = new java.sql.Date(ca.getTimeInMillis());
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "init");
        }
        AutoCompleteDecorator.decorate(jComboBoxEquipo);
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        jButtonGuardar = new javax.swing.JButton();
        jButtonRegresar = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTableEquiposusuarios = new javax.swing.JTable();
        jButtonQuitar = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        jComboBoxEquipo = new javax.swing.JComboBox();
        jPanel3 = new javax.swing.JPanel();
        jScrollPane4 = new javax.swing.JScrollPane();
        jTableEquiposusuariosDisponibles = new javax.swing.JTable();
        jButtonSubir = new javax.swing.JButton();
        jLabel2 = new javax.swing.JLabel();

        setClosable(true);
        setTitle("Agregar usuarios al equipo");

        jPanel1.setBorder(new javax.swing.border.MatteBorder(null));

        jButtonGuardar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/avbravo/jscrum/gif/save_icon.gif"))); // NOI18N
        jButtonGuardar.setToolTipText("Guardar");
        jButtonGuardar.setEnabled(false);
        jButtonGuardar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonGuardarActionPerformed(evt);
            }
        });

        jButtonRegresar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/avbravo/jscrum/gif/return.gif"))); // NOI18N
        jButtonRegresar.setToolTipText("Regresar");
        jButtonRegresar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonRegresarActionPerformed(evt);
            }
        });

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Miembros del equipo"));

        jTableEquiposusuarios.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Quitar", "Username", "Cedula", "Nombre", "Departamento"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Boolean.class, java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                true, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableEquiposusuarios.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTableEquiposusuariosMouseClicked(evt);
            }
        });
        jScrollPane3.setViewportView(jTableEquiposusuarios);

        jButtonQuitar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/avbravo/jscrum/gif/flechaabajo.gif"))); // NOI18N
        jButtonQuitar.setToolTipText("Quitar del equipo");
        jButtonQuitar.setEnabled(false);
        jButtonQuitar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonQuitarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 604, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonQuitar))
                .addGap(0, 24, Short.MAX_VALUE))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 104, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButtonQuitar))
        );

        jLabel1.setText("Equipo");

        jComboBoxEquipo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBoxEquipoActionPerformed(evt);
            }
        });

        jPanel3.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jTableEquiposusuariosDisponibles.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "Agregar", "Username", "Cedula", "Nombre", "Departamento"
            }
        ) {
            Class[] types = new Class [] {
                java.lang.Boolean.class, java.lang.Object.class, java.lang.String.class, java.lang.String.class, java.lang.String.class
            };
            boolean[] canEdit = new boolean [] {
                true, false, false, false, false
            };

            public Class getColumnClass(int columnIndex) {
                return types [columnIndex];
            }

            public boolean isCellEditable(int rowIndex, int columnIndex) {
                return canEdit [columnIndex];
            }
        });
        jTableEquiposusuariosDisponibles.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTableEquiposusuariosDisponiblesMouseClicked(evt);
            }
        });
        jScrollPane4.setViewportView(jTableEquiposusuariosDisponibles);
        jTableEquiposusuariosDisponibles.getColumnModel().getColumn(0).setMaxWidth(100);

        jButtonSubir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/org/avbravo/jscrum/gif/up.gif"))); // NOI18N
        jButtonSubir.setToolTipText("Agregar usuarios al equipo");
        jButtonSubir.setEnabled(false);
        jButtonSubir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSubirActionPerformed(evt);
            }
        });

        jLabel2.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
        jLabel2.setText("Usuarios disponibles");

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane4, javax.swing.GroupLayout.PREFERRED_SIZE, 604, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jButtonSubir)
                        .addGap(198, 198, 198)
                        .addComponent(jLabel2)))
                .addGap(0, 0, Short.MAX_VALUE))
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButtonSubir)
                    .addComponent(jLabel2))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 148, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(203, 203, 203)
                .addComponent(jButtonGuardar, javax.swing.GroupLayout.PREFERRED_SIZE, 77, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(48, 48, 48)
                .addComponent(jButtonRegresar, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addGap(0, 18, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel1)
                        .addGap(18, 18, 18)
                        .addComponent(jComboBoxEquipo, javax.swing.GroupLayout.PREFERRED_SIZE, 275, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jComboBoxEquipo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 29, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButtonRegresar)
                    .addComponent(jButtonGuardar))
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButtonRegresarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonRegresarActionPerformed
        dispose();
    }//GEN-LAST:event_jButtonRegresarActionPerformed

    private void jButtonGuardarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonGuardarActionPerformed
        guardarCambios();
    }//GEN-LAST:event_jButtonGuardarActionPerformed

    private void jComboBoxEquipoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBoxEquipoActionPerformed
        try {
            int j = jComboBoxEquipo.getSelectedIndex();
            if (j != -1) {
                if (fueMovido) {
                    if (Mensajeria.PreguntaSiNo("Se realizo un cambio en los usuarios\nDesea guardar estos cambios\nAntes de realizar otra accion", "Guardar Cambios").equals("si")) {
                        guardarCambios();
                    }
                    fueMovido= false;
                }
                equipos = equiposController.getEquiposlist().get(j);
                cargarTablaUsuarios();

            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "comboProyecto()");
        }
    }//GEN-LAST:event_jComboBoxEquipoActionPerformed

    private void jTableEquiposusuariosMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableEquiposusuariosMouseClicked
        try {
        } catch (Exception ex) {
        }
    }//GEN-LAST:event_jTableEquiposusuariosMouseClicked

    private void jTableEquiposusuariosDisponiblesMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTableEquiposusuariosDisponiblesMouseClicked
        // TODO add your handling code here:
    }//GEN-LAST:event_jTableEquiposusuariosDisponiblesMouseClicked

    private void jButtonQuitarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonQuitarActionPerformed
        try{
            
       
        quitarUsuariosModelo();
        fueMovido = true;
          if(!jButtonSubir.isEnabled()){
            jButtonSubir.setEnabled(true);
        }
          if(modeloDisponible.getRowCount()==0){
              jButtonQuitar.setEnabled(false);
          }
          } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "quitar()");
        }
    }//GEN-LAST:event_jButtonQuitarActionPerformed

    private void jButtonSubirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSubirActionPerformed
        try{
        moverUsuariosModelo();
        fueMovido = true;
        if(!jButtonQuitar.isEnabled()){
            jButtonQuitar.setEnabled(true);
        }
        if(modelo.getRowCount()==0){
              jButtonSubir.setEnabled(false);
          }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "subir()");
        }
    }//GEN-LAST:event_jButtonSubirActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButtonGuardar;
    private javax.swing.JButton jButtonQuitar;
    private javax.swing.JButton jButtonRegresar;
    private javax.swing.JButton jButtonSubir;
    private javax.swing.JComboBox jComboBoxEquipo;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JTable jTableEquiposusuarios;
    private javax.swing.JTable jTableEquiposusuariosDisponibles;
    // End of variables declaration//GEN-END:variables

    /*
     * cargarComboProyectos()
     */
    private Boolean cargarComboEquipos() {
        try {

            jComboBoxEquipo.removeAllItems();

            if (equiposController.selectAll()) {
                for (Equipos e : equiposController.getEquiposlist()) {
                    jComboBoxEquipo.addItem(e.getEquipo());
                }
                return true;
            } else {
                Mensajeria.Mensaje("Debe crear primero el equipo ");
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarComboEquipos() ");

        }
        return false;
    }
    /*
     * cargarComoboSprint()
     */


    /*
     *  cargarTablaUserStories()
     */
    private void cargarTablaUsuarios() {
        try {
            jButtonGuardar.setEnabled(false);
            jButtonQuitar.setEnabled(false);
       jButtonSubir.setEnabled(false);
            modelo = Utilidades.limpiarModelo(modelo);
            modeloDisponible = Utilidades.limpiarModelo(modeloDisponible);
            String where = "activo='si'";
            if (usuariosController.query(where)) {
                for (Usuarios u : usuariosController.getUsuarioslist()) {
                    Object[] filas = new Object[5]; // Hay tres columnas en la tabla       
                    where = "idequipo ='" + equipos.getIdequipo() + "' and username='" + u.getUsername() + "'";
                    if (equiposusuariosController.query(where)) {
                        filas[0] = false;
                        filas[1] = u.getUsername();
                        filas[2] = u.getCedula();
                        filas[3] = u.getNombre();
                        filas[4] = u.getDepartamento().getDepartamento();

                        modelo.addRow(filas);
                    } else {
                        filas[0] = false;
                        filas[1] = u.getUsername();
                        filas[2] = u.getCedula();
                        filas[3] = u.getNombre();
                        filas[4] = u.getDepartamento().getDepartamento();

                        modeloDisponible.addRow(filas);
                    }

                }
                if (modelo.getRowCount() == 0 && modeloDisponible.getRowCount() == 0) {
                    jButtonGuardar.setEnabled(false);
                    jButtonSubir.setEnabled(false);
                    jButtonQuitar.setEnabled(false);
                } else {
                    if (modelo.getRowCount() != 0) {
                        jButtonQuitar.setEnabled(true);
                    }
                    if (modeloDisponible.getRowCount() != 0) {
                        jButtonSubir.setEnabled(true);
                    }
                    jButtonGuardar.setEnabled(true);
                }
            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "cargarTablaUserStories()");
        }
    }

    private void quitarUsuariosModelo() {
        try {

            int n = modelo.getRowCount();
            if (n == 0 || !Utilidades.tieneSeleccionados(modelo, 0)) {
                Mensajeria.MensajeWarning("No hay usuarios en el equipo para quitarlos ");
                jButtonQuitar.setEnabled(false);
                return;
            }
            String temp;
            for (int i = 0; i < modelo.getRowCount(); i++) {
                temp = modelo.getValueAt(i, 0).toString();
                if (temp.equals("true")) {
                    Object[] filas = new Object[5];
                    filas[0] = false;
                    filas[1] = modelo.getValueAt(i, 1).toString();
                    filas[2] = modelo.getValueAt(i, 2).toString();
                    filas[3] = modelo.getValueAt(i, 3).toString();
                    filas[4] = modelo.getValueAt(i, 4).toString();
                    modeloDisponible.addRow(filas);
                    modelo.removeRow(i);
                    i--;
                }

            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "quitarUsuarios()");
        }
        return;

    }

    private void moverUsuariosModelo() {
        try {

            int n = modeloDisponible.getRowCount();
            if (n == 0 || !Utilidades.tieneSeleccionados(modeloDisponible, 0)) {
                Mensajeria.MensajeWarning("No hay usuarios disponibles para agregarlos");
                jButtonSubir.setEnabled(false);
                return;
            }
            String temp;
            for (int i = 0; i < modeloDisponible.getRowCount(); i++) {
                temp = modeloDisponible.getValueAt(i, 0).toString();
                if (temp.equals("true")) {
                    Object[] filas = new Object[5];
                    filas[0] = false;
                    filas[1] = modeloDisponible.getValueAt(i, 1).toString();
                    filas[2] = modeloDisponible.getValueAt(i, 2).toString();
                    filas[3] = modeloDisponible.getValueAt(i, 3).toString();
                    filas[4] = modeloDisponible.getValueAt(i, 4).toString();
                    modelo.addRow(filas);
                    modeloDisponible.removeRow(i);
                    i--;
                }

            }
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "agregarUsuarios()");
        }
        return;

    }

    private Boolean agregarEquiposUsuariosTabla() {
        try {
            Equiposusuarios equiposusuarios1 = new Equiposusuarios();
            EquiposusuariosController ec = new EquiposusuariosController();
            int n = modelo.getRowCount();
            String where, lusername;
            if (n != 0) {
                for (Integer i = 0; i < modelo.getRowCount(); i++) {
                    lusername = modelo.getValueAt(i, 1).toString();
                    where = "idequipo ='" + equipos.getIdequipo() + "' and username='" + lusername + "'";
                    if (!equiposusuariosController.query(where)) {
                        equiposusuarios1.setIdequipo(equipos.getIdequipo());
                        equiposusuarios1.setUsername(lusername);
                        if (!ec.insert(equiposusuarios1)) {
                            Mensajeria.MensajeWarning("No se pudo asignar el usuario " + lusername + "al equipo \n" + ec.getMensaje());
                        }
                    }
                }
            } 

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "agregarEquiposUsuariosTabla()");
        }
        return false;

    }

    private Boolean eliminarEquiposUsuariosTabla() {
        try {
            Equiposusuarios equiposusuarios1 = new Equiposusuarios();
            EquiposusuariosController ec = new EquiposusuariosController();
            int n = modelo.getRowCount();
            String where, lusername;
            /*
             *verificar los que se eliminaron
             */
            where = "idequipo ='" + equipos.getIdequipo() + "'";
            if (n != 0) {
                // si se quitaron usuarios del modelo
                where = "idequipo ='" + equipos.getIdequipo() + "'";
                if (equiposusuariosController.query(where)) {
                    for (Equiposusuarios e : equiposusuariosController.getEquiposusuarioslist()) {
                        Boolean encontrado = false;
                        for (int i = 0; i < modelo.getRowCount(); i++) {
                            lusername = modelo.getValueAt(i, 1).toString();
                            if (e.getUsername().equals(lusername)) {
                                encontrado = true;
                                break;
                            }
                        }
                        if (!encontrado) {
                            where = "idequipo ='" + equipos.getIdequipo() + "' and username='" + e.getUsername() + "'";
                            if (ec.query(where)) {
                                if (!ec.delete(where)) {
                                    Mensajeria.MensajeWarning("No se pudo eliminar el usuario " + e.getUsername() + "al equipo \n" + equiposusuariosController.getMensaje());
                                    break;
                                }
                            }
                        }
                    }
                }

            } else {
                //si tenia usuarios en este equipo y no hay en la tabla
                if (equiposusuariosController.query(where)) {
                    if (!equiposusuariosController.delete(where)) {
                        Mensajeria.MensajeWarning("No se pudieron quitar todos los usuarios de este equipo\n" + equiposusuariosController.getMensaje());
                    }
                }
            }

        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "eliminarEquiposUsuariosTabla()");
        }
        return false;

    }

    private void guardarCambios() {
        try {
            eliminarEquiposUsuariosTabla();
            agregarEquiposUsuariosTabla();
            Mensajeria.Mensaje("Proceso finalizado");
            fueMovido = false;
        } catch (Exception ex) {
            Mensajeria.MensajeError(ex, "guardarCambios()");
        }
    }
}
